package com.baidu.manager.modules.sys.service;

import com.baidu.manager.modules.sys.entity.SysMenu;

import java.util.List;
import java.util.Map;

/**
 * @Author: jql
 * @description: TODO(菜单管理业务逻辑层)
 * @Date: Created by 18:20 2018/6/7
 */
public interface SysMenuService {

    /**
     * 根据父菜单，查询子菜单
     * @param parentId
     * @param menuIdList
     * @return
     */
    List<SysMenu> queryListByParentId(Long parentId, List<Long> menuIdList);

    /**
     * 根据父菜单查询子菜单
     * @param parentId
     * @return
     */
    List<SysMenu> queryListByParentId(Long parentId);

    /**
     * 获取不包含按钮的菜单列表
     * @return
     */
    List<SysMenu> queryNotButtonList();

    /**
     * 获取用户菜单列表
     * @param userId
     * @return
     */
    List<SysMenu> getUserMenuList(Long userId);

    /**
     * 查询菜单
     * @param id
     * @return
     */
    SysMenu queryObject(Long id);

    /**
     * 查询菜单列表
     * @param map
     * @return
     */
    List<SysMenu> queryList(Map<String, Object> map);

    /**
     * 查询总数
     * @param map
     * @return
     */
    int queryTotal(Map<String, Object> map);

    /**
     * 保存菜单
     * @param menu
     */
    void save(SysMenu menu);

    /**
     * 修改
     * @param menu
     */
    void update(SysMenu menu);

    /**
     * 删除
     * @param ids
     */
    void deleteBatch(Long[] ids);

    /**
     * 查询用户权限列表
     * @param userId
     * @return
     */
    List<SysMenu> queryUserList(Long userId);
}
